home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac-Source 1994 July
/
Mac-Source_July_1994.iso
/
C and C++
/
Libraries
/
CommToolbox classes
/
Sources
/
CCTBApp.c
< prev
next >
Wrap
Text File
|
1993-03-04
|
4KB
|
183 lines
/* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
CCTBApp.c
CommToolbox compatible application class.
SUPERCLASS = CApplication.
Copyright © 1992-93 Romain Vignes. All rights reserved.
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
#include <CommResources.h> /* Apple includes */
#include <CError.h> /* TCL includes */
#include <Global.h>
#include <OSChecks.h>
#include "CConnection.h" /* Other includes */
#include "CCTBApp.h"
#include "CCTBDesktop.h"
#include "CCTBSwitchboard.h"
#include "CFileTransfer.h"
#include "CTermPane.h"
/* Constantes & Macros */
#define ERR_STR_ID 2000 /* Error messages ID */
#define CTB_STR_INDEX 1 /* CTB message */
#define MIN_CTB_VERS 0x100 /* Minimum CommToolbox version */
#define CTB_TRAP 0x8B /* CommToolbox trap */
/* Variables globales */
extern tSystem gSystem;
extern CDesktop *gDesktop;
extern CError *gError;
/*
* ICTBApp
*
* Initialize the CTBApp object
*
* extraMasters: Number of extra blocks
* aRainyDayFund: Bytes of memory to reserve
* aCriticalBalance: Bytes of memory to reserve for a critical operation
* aToolboxBalance: Bytes to save for the toolbox
*
*/
void CCTBApp::ICTBApp(short extraMasters, Size aRainyDayFund,
Size aCriticalBalance, Size aToolboxBalance)
{
CApplication::IApplication(extraMasters,aRainyDayFund,aCriticalBalance,
aToolboxBalance); /* Initialize superclass */
CApplication::cMaxSleepTime = 0L;
if (!managersPresent()) { /* CommToolbox installed ? */
SysBeep(3);
gError->PostAlert(ERR_STR_ID,CTB_STR_INDEX);
this->Exit();
ExitToShell();
}
InitCRM(); /* CTB managers initialization */
InitCTBUtilities();
CConnection::cInitManager();
CTermPane::cInitManager();
CFileTransfer::cInitManager();
}
/* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
/*
* MakeDesktop
*
* CommToolbox desktop initialization
*
*/
void CCTBApp::MakeDesktop(void)
{
gDesktop = new(CCTBDesktop);
((CCTBDesktop *)gDesktop)->ICTBDesktop(this);
}
/* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
/*
* MakeSwitchboard
*
* CommToolbox switchboard initialization
*
*/
void CCTBApp::MakeSwitchboard(void)
{
itsSwitchboard = new(CCTBSwitchboard);
((CCTBSwitchboard *)itsSwitchboard)->ICTBSwitchboard();
}
/* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
/*
* Process1Event
*
* Handle the next Event
*
*/
void CCTBApp::Process1Event(void)
{
CConnection::cConnIdle(); /* Idle loop for connection objects */
CTermPane::cTermIdle(); /* Idle loop for terminal objects */
CFileTransfer::cFTransIdle(); /* Idle loop for transfer objects */
inherited::Process1Event(); /* Send the message to its superclass */
}
/* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
/*
* GetCTBVersions
*
* Return the CTB managers versions
*
* CTBVers: CommToolbox version
* CMVers: Connection Manager version
* TMVers: Terminal Manager version
* FTVers: File Transfer Manager version
* CRMVers: Communications Resources Manager version
*
*/
void CCTBApp::GetCTBVersions(short *CTBVers,short *CMVers,short *TMVers,
short *FTVers,short *CRMVers)
{
*CTBVers = CTBGetCTBVersion();
*CRMVers = CRMGetCRMVersion();
*CMVers = CConnection::cGetCMVersion();
*TMVers = CTermPane::cGetTMVersion();
*FTVers = CFileTransfer::cGetFTVersion();
}
/* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
/*
* managersPresent
*
* Are the CTB managers installed ?
*
* Return TRUE if all managers are present
*
*/
Boolean CCTBApp::managersPresent(void)
{
if (TrapAvailable(CTB_TRAP))
return TRUE;
else
return FALSE;
}
/* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */